課程資訊
課程名稱
編譯程式設計
Compiler Design 
開課學期
99-2 
授課對象
資訊工程學系  
授課教師
陳俊良 
課號
CSIE3230 
課程識別碼
902 39200 
班次
02 
學分
全/半年
半年 
必/選修
必帶 
上課時間
星期二2,3,4(9:10~12:10) 
上課地點
資104 
備註
限學號雙號 且 限本系所學生(含輔系、雙修生) 且 限學士班三年級以上
總人數上限:106人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

編譯器是歷史最悠久的計算機程式之一,負責把利用高階語言撰寫的程式轉成低階語言的格式,以利底層平台(虛擬機器、作業系統、硬體等)的執行。編譯器是支程式,但不是會寫程式的人就會寫編譯器。理由之一,編譯器很大,要撰寫維護如此規模的程式必須擁有更精進的程式技巧與經驗。理由之二,編譯器開發至今已有很完備的理論基礎,脫離了這些理論要寫出有用的編譯器,縱使不是緣木求魚也一定事倍功半。
本課程將談論編譯器的理論與實作。至於編譯器課程的重要性,底下文字摘錄自 ACM 以及 IEEE Computer Society 主導之 2008 年版計算機科學課程規劃書: Several industrialists passed very positive comment about compiler courses. Although many companies do not engage in anything related to compilers, compiler writing tended to be seen as a microcosm for realistic software development. So good compiler writers are often seen as desirable; they tend to be good software engineers.

課程大綱:
* compiler structure
* regular expression & context-free grammar
* lexical analysis
* syntactic analysis
* compiler construction tools
* symbol table management
* semantic analysis
* intermediate code synthesis
* runtime memory management
* basic optimization
* target code generation 

課程目標
本課程的目標在於讓修課同學:
* 了解編譯過程的各階段 (phases)
* 了解編譯器理論及其相關數學
* 有能力製作一個小型編譯器
* 有機會觀摩真實的編譯器程式碼
* 藉助實作編譯器的過程,累積軟體開發的經驗
* 奠定進一步從事編譯器相關研究之基礎 
課程要求
 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
 
參考書目
 
評量方式
(僅供參考)
   
課程進度
週次
日期
單元主題
無資料